PythonのLangChainでAzure OpenAI Serviceにデプロイしたモデルを利用するサンプルをやってみた
データアナリティクス事業本部 インテグレーション部 機械学習チームの鈴木です。
PythonのLangChainのドキュメントで、Azure OpenAI Serviceにデプロイしたモデルを利用するサンプルがあり、自分でも試してみたのでご共有です。
試したサンプル
以下のLangChainライブラリの、Azure OpenAI向けのサンプルをやってみました。
ご紹介する内容としては、環境変数を使った設定方法を、一部修正しました。Azure OpenAI Serviceの利用のための実装は同じです。
クライアント実行環境
実行環境はGoogle Colaboratoryを使いました。ハードウェアアクセラレータ無し、ラインタイム仕様は標準としました。
Pythonのバージョンは以下でした。
!python --version # Python 3.10.12
また、ライブラリは以下のようにインストールしました。
!pip install python-dotenv !pip install langchain !pip install openai
インストールされたライブラリのバージョンは以下でした。
!pip freeze | grep -e "openai" -e "langchain" # langchain==0.0.209 # langchainplus-sdk==0.0.16 # openai==0.27.8
環境変数の設定
まず、必要な値を.env
ファイルに書き込みます。
# openaiパッケージの設定 !echo 'OPENAI_API_TYPE="azure"' >>.env !echo 'OPENAI_API_BASE="<エンドポイント>"' >>.env !echo 'OPENAI_API_VERSION="2023-05-15"' >>.env !echo 'OPENAI_API_KEY="<トークン>"' >>.env # 環境変数としてコードで別途利用するもの !echo 'DEPLOYMENT_NAME="<デプロイ名>"' >>.env !echo 'MODEL_NAME="<モデル名>"' >>.env
上の4つはドキュメント記載の、openaiパッケージの設定になります。下の2つは、実装中でlangchain.llms.AzureOpenAI
に渡す値を環境変数に切り出したものになります。
今回、OPENAI_API_VERSION
は2023-05-15
としました。APIのバージョンについては、以下のドキュメントを参考にしました。
MODEL_NAME
はサンプルではtext-davinci-002
でしたが、執筆時点で以下のドキュメントで紹介されていたtext-davinci-003
を利用しました。
load_dotenv()
で環境変数を読み込みました。
from dotenv import load_dotenv load_dotenv()
実行してみる
デプロイ名とモデル名を指定して、実行してみました。サンプル通り、Tell me a joke
と聞いてみます。
# 2023/06/22に以下のドキュメントを参考にしました。 # https://python.langchain.com/docs/modules/model_io/models/llms/integrations/azure_openai_example # Import Azure OpenAI from langchain.llms import AzureOpenAI # Create an instance of Azure OpenAI # Replace the deployment name with your own llm = AzureOpenAI( deployment_name=os.getenv("DEPLOYMENT_NAME"), model_name=os.getenv("MODEL_NAME") ) # Run the LLM llm("Tell me a joke")
以下のように、ジョークを教えてもらえました!
Q: What did the fish say when it hit the wall? A: Dam!
最後に
今回はPythonのLangChainで、Azure OpenAI Serviceを利用してみました。
Azure OpenAI Service側の環境準備については以下のブログも参考にしてください。